Fixed textview rendering regression.
authorTristan Van Berkom <tristan.van.berkom@gmail.com>
Mon, 14 Feb 2011 05:00:15 +0000 (14:00 +0900)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 6 May 2011 21:05:34 +0000 (17:05 -0400)
Background color was not painted on the whole tagged segment after
line breaking, this was due to the default ->prepare_run() function
wiping the internal PangoColors clean... fixed this by unconditionally
setting local rgba colors from prepare_run instead of comparing them
and bailing out.

gtk/gtktextdisplay.c

index e3ec766dcbc13138c049317a5aa1732c7ccb9e99..66142f810024d8805684734b6a6f36ff832dff68 100644 (file)
@@ -132,27 +132,15 @@ text_renderer_set_rgba (GtkTextRenderer *text_renderer,
   PangoRenderer *renderer = PANGO_RENDERER (text_renderer);
   PangoColor     dummy = { 0, };
 
-  if ((!rgba && !text_renderer->rgba_set[part]) ||
-      (rgba && text_renderer->rgba_set[part] &&
-       text_renderer->rgba[part].red == rgba->red &&
-       text_renderer->rgba[part].green == rgba->green &&
-       text_renderer->rgba[part].blue == rgba->blue &&
-       text_renderer->rgba[part].alpha == rgba->alpha))
-    return;
-
   if (rgba)
     {
-      text_renderer->rgba_set[part] = TRUE;
       text_renderer->rgba[part] = *rgba;
-
       pango_renderer_set_color (renderer, part, &dummy);
     }
   else
-    {
-      text_renderer->rgba_set[part] = FALSE;
+    pango_renderer_set_color (renderer, part, NULL);
 
-      pango_renderer_set_color (renderer, part, NULL);
-    }
+  text_renderer->rgba_set[part] = (rgba != NULL);
 }
 
 static GtkTextAppearance *